Welcome to linearity hell....
What frequency are you working with, and what bandwidth?
You are only looking at 23dB of required gain, so do you really need three stages?
Usually excessive front end gain is a much bigger problem then not enough, especially when dealing with fairly strong signals, -55dBm is a huge signal unless you are working with a very wide bandwidth.
What is your target noise figure?
Now your receiver dynamic range is 20dbm - -32dBm = 52dBm but your spec says you need 55dB of dynamic range (Incidentally are you sure your Rx does not have an input attenuator already +20dBm is at least 30dB more power then I would expect the usual sort of rx mixer to deal with with well), so you need some sort of variable gain stage in any event, skyworks have some fairly nice high IP3 attenuator parts that might work.
Given your evidently rather relaxed noise floor I would probably just throw the variable attenuator on in front of the amplifier chain, it hurts system noise performance by an amount equal to the insertion loss but reduces your chance of saturating the front end.
My starting point with this would be to take a long hard look at that recever design and see if I could not squeeze another 10dB of dynamic range out of it together with a more reasonable noise floor, -32dBm is not a reasonable noise floor for a receiver unless it is stupidly wide band, and 52dB between noise floor and saturation is fairly pathetic, as is needing +20dBm to the input, I would be throwing that design back and telling whoever drew it to come back with a design for a real radio.
Now the amplifier chain itself needs what is effectively a small power amplifier at the output (+20dBm is 100mW!), you cannot really do this with most mmic or such, as I say the recever spec looks improbable to me.