"fed her, she fell asleep in my arms, I put her down... "
So don't put her down! Which is where a sling comes in. She's been in your belly for 9 months, that's 40 weeks. She's been outside your belly for 3 weeks, and it's a huge culture shock to her. She needs to be in contact with you to feel secure, that's why she'll fall asleep in your arms and then wake when you put her down. She is being a normal, natural 3 week old baby, there is nothing wrong with her at all!
As for when she will learn to self-settle, that comes later, much, much later. It isn't natural for babies to self-settle, don't expect it until she's closer to a year or more. There is nothing wrong with nursing her and cuddling her to sleep, it's not a bad habit, it's what babies instinctively expect to happen, and to try to get a tiny baby to self-settle is to try to go against a million years of evolution. Shift your expectations, hold her, cuddle her, keep her close, lots of skin to skin, and don't try to "train her" (even though lots of people will tell you that you need to) and take the time to enjoy the feeling of holding your baby, and feeling her warm little body against you, sit and stare at her, and congratulate yourself on how clever you are to have made such an amazing little creature, marvel at how perfect she is, and forget about the ironing and hoovering. Lie in bed with her and snuggle, allow yourself to relax and just be with her. Lay her beside you and hold her close, tickle her nose with your nipple, squeeze a little milk out so it smells like food, let her mouthe and nuzzle and lick, instinct is very strong, and even though our current hospital practices do their very best to get in the way of our natural nurturing processes, at this early stage it is possible to tune back in and trigger those instinctive responses for both of you.
Oh, and there is a growth spurt at three weeks which makes most babies fussy and ravenous, so in some ways this is a perfect time to try to relatch her, and probably one of the reasons why she's so unsettled at the moment.