Those three pins can give you
any number of individual outputs and the circuit is far simpler than the two-timers-per-output one.
There is a good example here with a full explanation:
https://www.arduino.cc/en/Tutorial/ShiftOut
If you need more than eight outputs, just use another 595 and connect it's data in to the data out of the first one, then shift 16 bits before activating the strobe signal. [Or use three 595s and shift 24 bits, etc..]
For individual timers, the lowest component count is possibly to use a 4017 for each sequencer.
Connect the clock inputs of those to a suitable oscillator like a 555, or drive it from an MCU pin - just one source for all the 4017's you use.
Connect the control pins from the MCU to each 4017 reset, the green to output zero and use diodes to OR together some number of outputs from 1 up, to give the correct amber time in relation to the clock osc speed.
Connect the next output after those to the red and also clock inhibit on the same chip. That stops the sequence continuing or repeating, until reset is activated again.
4017 Data:
https://www.ti.com/lit/ds/symlink/cd4017b.pdf
If the "clock" is generated by the MCU and you only ever change state as that changes, you could use the cycle time of that to set the amber state time and just outputs 0, 1 and 2 for green, amber, red.
If it's a free-running or asynchronous clock, you cannot be sure how long after the MCU signal changes (and the reset is released), so the first state time can vary tremendously. Using several outputs ORd together ensures the time variation is minimal compared to the overall amber state time.,