Translation:You're so hot, you are giving me a sunburn.
Personally, it looks wrong to me - either the English translation is wrong or the French unnecessarily uses the adverbial pronoun here (En). Also, 'a sunburn' isn't really countable, is it? I'd have preferred "I caught sunburn" or "I got sunburn" which better relates to "attrapé".
'J'en attrape' here could mean "I caught [it]" as in "I caught your heat because you are so hot". Or it could mean "I caught sunburn [from it]" as in "You are so hot that I caught sunburn from it" (un coup de soleil completes the sentence to give meaning).
That's my best explanation at the moment. Not perfect, but why the pronoun is needed or why the alternative structure "tu me donner" wasn't used, I don't know.
Here's a link to using the French pronoun 'En'.
(You mean tu me donnes). So, Tu es si belle que j'attrape un coup de soleil sounds weird. The en here refers, as you suggested, to the principal proposition, the cause, tu es si belle, hence que j'en could be translated as that, because of it, I. The en could indeed refer to a previously established complement: Des coups de soleils, j'en attrape, (lit.) Sunburns, I catch some, but here, as no complement is established and there is already a complement for attraper, it refers to the cause of the sunburn.
Compare with: J'en suis malade!, which is unambiguously I'm sick because of that.
Oui tu me donnes, merci. You are so beautiful that I catch sunburn? I'm confused, or was this just an example to explain the compliment? The issue isn't so much the compliment here (although I understand what you're saying about 'because of it'), the issue is with the English translation "you give me a sunburn". Which doesn't seem to match the French and doesn't sound the best.
I think it's clear these are provided for humorous reasons more than anything. That said, take care with this one if you decide to use it in person. I was always told "chaude" in this sense would have a decidedly sexual connotation, as in someone who is "chaude" is, shall we say, "ready to go".
"Solaire" may make more sense than "chaude" ... but the sentence is still clunky as far as its meaning in French.