Sim900 GPRS and keyPad

You have a hardware conflict

 SoftwareSerial sim900(2, [color=red]3[/color]);
...
byte rowPins[ROWS] = {[color=red]3[/color], 4, 5, 8};

how are things wired?