Can I have a main smart contrast that has many subcontracts that can be executed once they are called by other people? And the subcontracts can update the status of the main one if some conditions are satisfied?
I'm not quite sure what you mean by "subcontracts".
A contract can call functions on other contracts, so you can create the "subcontracts" and call their functions from the main contract, and return data if needed. The contracts that you call can also call back into the main contract to change things, and you can add any access control you'd like to this so only the "subcontracts" can update the main contracts state.