how to communicate between 3 devices
Your setup as you described it has two masters. That means that you should look for multi-master I2C support in your devices' hardware and protocol stack that you're going to use if you stick with I2C. I2C from my experience is a very, ehm..., whimsy, especially when it comes to I2C slave implementation. Most microcontrollers, although claiming support for both master and slave modes, work best in master mode.

If I were you, I would probably look into using CAN as it is originally designed for multi-device intercommunication.

On the other hand, if you want simplicity and only need to send short messages from time to time, you may even go with 1-wire, which in my opinion is much more robust (both protocol- and interference-wise) than I2C and is much simpler in implementation than both CAN and I2C. It doesn't even need special hardware support and can be implemented on pure GPIO lines (with interrupts, preferably).