Yes, it's correct in both sentences.
"Para" expresses a destination both literally and figuratively, so "para (la)
Navidad" is right.
You will find some people who say (joking or not) that "medicina para la tos" should be "medicina
contra la tos", because otherwise you'd be saying that the medication is meant to make your cough worse. However the significance of "medicina/medicamento" (some substance that relieves sickness) is enough to express what you mean.