Yes, the Arduino can supply current for 2 matrixes. I have powered four, with 9V source. 12V was too much, the regulator would over heat and shutdown.
Theoretically, to have two MAX7219 driving a dual color common cathode matrix one would wire it like this, and multiplex the outputs by alternately putting each part in shutdown mode:
"When the MAX7219 is in shutdown mode, the scan oscillator is halted, all segment current sources are pulled to ground, and all digit drivers are pulled to V+, thereby blanking the display."
The diodes isolate each part from the common cathode so the MAX7219s do not interfere with each other when sinking cathode current.
As a hardware engineer, I would use SPI.transfer()s to communicate to each part, with a seperate ssPin to each part so that you could update one or the other.
SCK - to MAX7219 CLK pin 13
MOSI - MAX7219 DIN pin 1
ssPin - to MAX7219 LOAD pin 12
Or, daisy chain them and write a loop that updated the 8 registers on each one every so many mS for animations.
I don't follow this fascinintion with using the equivalent of shiftout() for sending data to the parts:
Arduino pin 12 is connected to MAX7219 DIN pin 1
Arduino pin 11 is connected to MAX7219 CLK pin 13
Arduino pin 10 is connected to MAX7219 LOAD pin 12