Spray the cap with Krylon Fusion plastic paint, then paint your color over that. Fusion paint is made to bond to plastic much better than normal paint. You can also use the duplicolor plastic primer, but it seems to be hard to find (around here anyway)
Once it is primed, the Duplicolor silver wheel paint is pretty much a dead on match for the Subaru silver. I touched up a stock wheel using it and you couldn't tell where I had painted.