It's unrealistic to expect poor people to pay extra for their goods. If I have extra money (and the American made product is equal in quality), then sure, I'd prefer to buy American.
That doesn't make your argument incorrect, but conservatives do this too, it's not a liberal or conservative problem it's a national problem. If we all agree that we should buy American, then we should make that choice easier and the solution isn't that difficult. You just have to tax imports to the point that they are more expensive than American products.
Edit:
I love how Unions get brought up, but Unions exemplify the problem:
It does no good for me (as an individual) to buy American. It's ONLY effective if EVERYONE (or at least a large majority) buy American, likewise labor is only powerful if it Unionizes...so you want to Unionize how Americans buy products. We have to come together and agree to do this or it doesn't work, simple as that. Now if we already agree that we should buy American, then raising the price of imported goods doesn't really do anything because we weren't going to buy that anyway, but at least this way there is no financial reason to buy non-American goods.