To simply put, 그렇지만 means 'but' or 'however', 그런데 means 'by the way', and 그래도 means 'even though', 'still', or 'in spite of'.
Examples) 네 말도 일리는 있다. 그렇지만 우리는 다른 사람들의 의견에 따라야만 한다. (You use 그렇지만 to say something contradictory to the statement that has been said)
아 그렇군요. 그런데 왜 그때는 말씀을 안하셨습니까? (You use 그런데 when you change the subject of conversation or want it to lead in a different direction)
소리를 높여 다시 불렀다. 그래도 대답이 없었다. (You use 그래도 when you tried to change a situation but the result remains the same)
Sometimes they are interchangeable and do not make much difference. The best way to understand the meaning of each and the usages would be to know them through the context they appear.
Hope this helps.