My child's pink eye hasn't gone away. It's been three weeks. Should I be nervous?

Maybe. A child with "pink eye" usually has a viral infection, sometimes allergies, sometimes a bacterial infection, and occasionally other problems. Usually, symptoms go away in a few days, or up to a week or so. A pediatrician often will recheck the child if symptoms haven't gone away in a week, and recommend the child see an ophthalmologist (eye doctor) if symptoms are persistent or worse than average.
Go to pediatrician. Allergic or viral conjunctivitis in general resolve within 3 weeks. I would take your child to see a pediatrician for a full exam asap. There are other reasons for pink eye that you do not want to miss such as a foreign body.