S7-300 can be DP slaves if they don't have slaves of their own. I'm not sure if a S7-300 can be a master of another S7-300 though. Never tried it before.
But we do have several S7-300's that are slaves to S7-400's.
That being said, if both CPU's support S7 communication (loadable FC/FB) you can setup a S7 connection and use AG_SEND/AG_REVC or B_SEND/B_RECV to send/receive data between the PLC's.
EDIT:
S7-300 can be slave to another S3-700.
In the DP settings of the CPU, select it as DP Slave.
Next tab define the In-/Outputs shared between the 2 PLC's. Save.
In the HW-config of the DP master, add to the Profibus > PROFIBUS DP > Configured Stations > CPU 31x > Just drag it to the DP master system line.
In the pop-up box, you can select the other S7-300 (it should already be selected). If they are in the same project and it has already been configured as a DP Slave that is.
In the Configuration Tab of the DP properties, you can define the In-/Outputs shared between the PLC's.