Optimal way of moving a parent node with many children?

We have discovered that the prefab we instantiate at runtime costs a lot of performance (we need to instantiate 30).

The prefab is a parent node with 20 children that each has 5 children (Each child cost 2-3 draw calls).
When we instantiate the prefab, the parent node and one of the children (2-3 sprites) are active/visible in the scene.

We must be able to choose one of these 20 children when the user takes an action, so either we have a complete prefab with everything we need in it or we make 10 unique prefabs each with 2 children - and then instantiate a lot more prefabs at runtime, but this might be even more expensive?

Example of our Parent node with children in Creator

Yes by now instantiate is a bit expensive, but we not yet have time to optimize it…
Please try cc.NodePool if you can.

Thanks for the advice. I also think we will try to limit the number of childnodes to increase performance.