Does this sample for you?
RANDOM_SEED = 101
rng = np.random.default_rng(RANDOM_SEED)
y = pm.draw(pm.Normal.dist(mu=2, sigma=1), draws=1000)
with pm.Model() as model:
mu = pm.Normal("mu", mu=0, sigma=3)
sigma = pm.HalfNormal("sigma", sigma=1)
y_obs = pm.Normal("yobs", mu=mu, sigma=sigma, observed=y)
idata = pm.sample(chains=4, draws=2000, random_seed=RANDOM_SEED)