Adding constraint to the parameter

What you are describing is a simplex, which is usually modelled using a Dirichlet distribution:

p = pm.Dirichlet('p', a=np.ones(3))