I think fixed priority makes sense to me.
Assuming you have standard 24 VAC discrete thermostat controls (not RS-485 communicating ones), then:
Divide your units into #1, #2, and #3 priority. You need a relay that closes when #1 turns on, another relay that closes when #2 turns on. Then run #3 turn on signal in parallel through the NC contacts of both relays. If at least one of them is NOT active, then #3 unit can run. As soon as both #1 and #2 are active, the signal has no path to the #3 unit.
This simple system has some gotchas, however. Most modern systems don't stop the compressor immediately when the signal goes away. It could be a few seconds lag for #3 to shutoff. That is exactly when you have 2 units on and the third starting, worst case scenario.
Also, compressors don't like to be quickly restarted. If #1 is running, #3 is running, the #2 starts, #3 drops, then #1 stops, #3 starts again too quickly. Most modern system have timer interlocks to prevent this, however.
The real way to solve this is to run all three units to some intelligent controller, like a PLC, and program it with any desired method to keep things working. This can also prevent the starting of two units at the same time, something you would like to avoid.
A better choice might be this:
Key feature, optoisolated inputs since you can't be sure your units all share the same ground/neutral for the low volts thermostat wires. You run the controls into the optoisolated inputs, then the relays decide to pass them on or not.
Bonus point, make the relays pass the signals on the NC terminals (energize relay to NOT pass controls). That way, is the system loses power, it defaults to passing controls to the units so you have some HVAC workable. Or you can make some units default on during outage, and one not, just to handle the failure case. You choose by using NC or NO terminals and whether the relay energizes to be on or off.
In normal operation, relays are in the "off" state (which means some may be energized). You watch the inputs every 5 seconds. If a unit wants service, switch its relay and the unit turns on. Next 5 seconds another unit might service, you can switch its relay. When the third shows up, do nothing, you are maxed out. When a unit doesn't want power, switch its relay to shut it off. Next 5 seconds you can start the third one. In this way, only one thing can happen every 5 seconds which avoids two starting at once, and you can control how many and in what priority they start, and even control minimum off times for compressor health.
The Pi could also do Solar Assistant at the same time, of you want, or anything else it can do since monitoring HVAC inputs is rather trivial effort. You can also log your AC run times and patterns if you show choose.
If you need more relays or inputs, this board can be stacked to get you more of them. This may be an issue if you have two stage cooling, which then means you could run all three in low stage if desired and only have to lock one out in high stage.
You do need to get down and dirty with coding it, however. Python is probably the best way.
Mike C.