It is not very important here since this loop is likely not to have many iterations,
but in general it should be better to avoid loops. Something like
cov = np.random.normal(size=(p,p))
should work fine here.