according to your diagram, you want to train one network that contains 3 sub networks?
but in your code, you are creating 3 separate optimizers.
I cant help wondering:

why are you creating 3 optimiziers?
what happens if you use just one optimizer instead?