Fabio Silva's stoppage-time goal secured a 2-2 draw for Borussia Dortmund at RB Leipzig, narrowing Bayern Munich's Bundesliga lead.