Keeping Instantiated child objects relative to their parent

So I’ve instantiated an object and kept it attached to the parent however the parent has a separate script to move, I have no idea how to go about keeping the childs position relative to the parent.
if (townLevel = 1) { offset2 = new Vector3(0, 3, 0); Instantiate(buildingsLevel2[Random.Range(0, buildingsLevel2.Count)], transform.position + offset2, transform.rotation); }
Code for context, how do I update the position of the child to stay relative with the parent?

Just set parent of your instance and they will follow parent. So your code would be like:

if (townLevel == 1) { 
    offset2 = new Vector3(0, 3, 0); 
    Instantiate(buildingsLevel2[Random.Range(0, buildingsLevel2.Count)], transform.position + offset2, transform.rotation, yourParentTransform); // place here (yourParentTransform) the Transform of parent that you want your childs to follow
}