You can use "width" to add horizontal lines on top and bottom of error bars, but it looks you need to assign large value since x-range is large (~ 10000). The same reason, your dodge (0.05) is too small to appear in the plot.
I tried this and produced the attached plot. hope this helps.
ggplot(data2, aes(x=Cohort, y=Mean_R2, color = Trait)) +
geom_line(aes(group=Trait))+
geom_errorbar(aes(ymin=Mean_R2+SD, ymax=Mean_R2-SD),
width = 500, position=position_dodge(200)) +
coord_cartesian(xlim=c(0,10000))