How can I access variables only declared in a template?
I don't think you can. I think the best way to access 'unattached' variables is to create a global field set and attach fields to it. That way you'll be able to access them anywhere.

{{ globalSet1.title }}
{{ globalSet1.description }}
{{ globalSet1.variable3 }}