I am not clear on the need to use factory override in this case.
You should instead define a top_reg_block
which has all these 3 reg_blocks as sub-blocks.
This top_reg_block would act as your root register block.
Based on this idea for Sub-system level Tb’s we re-use each of the IP’s reg_block as sub-block of our user-defined ss_top_reg_block