first of all I like to inform you about this post: How to acquire images by turns using multi cameras? Maybe you find some answers there. Besides other information you can read the following:
... as you are using a GigEVision camera the camera explicitly needs to be started. microDisplay will do that for you when you click the Play button. However it will start camera 0 with DMA 0. Camera 1 with DMA 1. Etc. As you only have a single DMA camera 1 (you call it camera 2) will not be started by microDisplay.
Solution: Open the GenICam explorer and connect with the second camera. Search for parameter StartAcquisition and click Execute. This shall start the second camera and you can acquire the images with microDisplay.
You won't have that type of problem when you integrate the frame grabber with the API using the SDK as you need the code to start the cameras anyway. If you are using a 3rd party interface like Halcon you need to check it.
In your case your design will work if you can change the operator SourceSelector only between two frames. So you need to stop all cameras, let the pipeline get empty, change the SourceSelector source and restart let's say two out of three cameras.
If you have a disabled camera asynchronous to your trigger. For example because of a failure you won't be able to switch to your fallback solution. Especially if it is in the middle of a frame transfer. The operators can only switch at the end of a frame.
Maybe you can further explain the expected camera issues so that I can think about a workaround.