Why not just drop the beta term for that particular group?
with pm.Model() as mod:
offset = pm.Normal('offset', 0, 1.)
offset_missing = pm.Normal('offset_mis', 0, 1.)
beta = pm.Normal('beta', 0, 0.5)
err = pm.HalfNormal('error', 0.5)
err_missing = pm.HalfNormal('error_uk', 0.5)
y_obs = pm.Deterministic('y_obs_', offset + beta * data.p.values[np.isfinite(data.p.values)])
y_lik = pm.Normal('y_lik_', y_obs, err, observed=data.y.values[np.isfinite(data.p.values)])
mis_lik = pm.Normal('mis_lik_', offset_missing, err_missing, observed=data.y.values[np.isnan(data.p.values)])
tr = pm.sample(1000, tune=750, chains=6, cores=2)
