I can tell you one reason monsters are too easy- damage resistance bludg/pierce/slash. I've removed it from my game entirely since I usually give out a magic item per level in my current game. Monsters get another 40-80 hit points out of that one change.
Traps are a little bit harder to work out xp for. I've put them with exploration. The times I've used a trap in combat, I've stated it out as a monster, pretty much an animated object.
I haven't started giving XP for traps, but I do find it helpful to have a little chart for myself to quickly reference and know if a certain trap is deadly at a certain level. To be fair, the info in the DMG does list this, but it does it in a very bare-bones way. The Unearthed Arcana article about traps offers some more information, but not a whole lot. Though, I did find the complex traps in the UA article to be pretty cool.
The way I design traps is a little different than the DMG suggests also. I'll give a rough example of something I'm working on...
Swinging Blades are a staple in fantasy games. The UA article had them as an option, but I still wasn't thrilled with the implementation. It wasn't bad, but it wasn't exactly what I wanted either. I like traps to be a little more interactive, so I've started working on building some of them as something similar to a terrain feature. For the sake of making my example easier to understand, I will assume a grid to help with visualizing how it works.
In the version of swinging blades that I'm working on, the blades do not attack a specific square. Instead, they are swinging along the lines which are the edges of squares. So, imagine a 2 square wide hallway with a 5 square section of the Swinging Blades "terrain feature."
00l0l0l0
00l0l0l0 The 0s represent squares, and the ls represent where the blades are.
Taking your time to study the pattern, speed, and rhythm of one blade might making crossing it no problem. As such, I would allow the player to move one square and stop without needing to make a save. However, crossing multiple blades is more difficult, so that would require a save. Likewise, being pushed into the path of a blade would require a save because you're not ready for it. The more blades crossed, the more difficult the save.
So, my rough draft notes of that particular idea looks something like the following:
Swinging Blades
Moving across 1 and stopping: no check to avoid
Moving across multiple blades or being pushed into the path of blades: DC 15 Reflex; 2d12 damage
+1 to DCs and +1d12 for each additional blade crossed*
*meaning that crossing all three blades in my above example would be DC 16; 3d12 on a fail
It's still a work in progress though. My idea is to make traps a little more interactive and provide more choice to how to deal with them; I think making them a little more dynamic is more interesting as part of an encounter too. In this particular example, I'm considering adding the option of treating the area as difficult terrain (to simulate trying to be more careful while crossing the paths of the blades) in exchange for a lower DC to avoid damage or treating the area as difficult terrain in exchange for advantage on the save. The latter option seems like less bookkeeping for an idea which already increases what a DM is managing.
I don't want to derail the thread too much though. Suffice to say that I have a notebook full of trap ideas that I've been working on, and my above example gives some insight into what I'm trying to do.