Because we don't have a social safety net in the United States, so getting laid off could make you instantly destitute.
> why do employers give it?
To maintain their community reputation. In the future when they hire again, it's easier to paper over a layoff if you can show that you tried to take care of the employees.
Also because it's the ethical thing to do.
> should one negotiate it?
Usually in a mass layoff like this you can't negotiate it, since it's a standard package and you don't really have any leverage. But if you're a one off "layoff" you can and probably should negotiate it. Your leverage is "I might sue you for wrongful termination". So the company has to make a calculus on what that might cost them.
> what is fair/unfair?
That's the 64,000 dollar question, isn't it? It seems like three months is pretty typical. When someone gets six months most people call them "lucky". When someone gets a year people call it "unheard of". No whether that's fair or not is anyone's guess.
It would be great to get some data on how long the average laid off tech worker is out of work. Maybe start a movement to get severance to match that. But again, the laid off employee has very little leverage.