2 and 3 both sound OK to a British English speaker.
On "buy", in 2, the focus is on the current situation - the speaker sees the dress and so the "buying" has a repercussion in the present moment even though the buying clearly took place before the present. However, in 3, the focus is a bit more on the past. If in doubt, it is safer to use the past simple when referring to a single event in the past.
On "get/got", the first thing to know is that "have got" usually has the present tense meaning of "have". e.g. I have a car = I have got a car. In UK English, "have got" is also the present perfect of "get" but in US English, it is "have gotten".
Still on "get", only the past simple works here in most contexts if we imagine that the wearer bought it in a shop.