Your configuration is a bit strange. You have the same subnet on two multipoint interfaces. When you don't specify a source from R1 it chooses 192.168.123.1 as the source IP of the packet. R4 does not know how to encapsulate the frame to 192.168.123.1. This is how it looks from R1:
R1#ping 192.168.123.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.123.3, timeout is 2 seconds:
IP: tableid=0, s=192.168.123.1 (local), d=192.168.123.3 (Serial0/0.103), routed via FIB
IP: s=192.168.123.1 (local), d=192.168.123.3 (Serial0/0.103), len 100, sending
Serial0/0.103(o): dlci 103(0x1871), pkt type 0x800(IP), datagramsize 104.
If you look at CEF you can see that R1 has two entries for 192.168.123.0/24.
R1#sh ip cef 192.168.123.0 255.255.255.0
192.168.123.0/24, version 37, epoch 0, attached, connected, per-destination sharing
0 packets, 0 bytes
via Serial0/0.102, 0 dependencies
traffic share 1
valid glean adjacency
via Serial0/0.103, 0 dependencies
traffic share 1
valid glean adjacency
0 packets, 0 bytes switched through the prefix
tmstats: external 0 packets, 0 bytes
internal 0 packets, 0 bytes
R4 does not know how to encapsulate the frame.
Serial0/0(i): dlci 301(0x48D1), pkt type 0x800, datagramsize 104
ICMP: echo reply sent, src 192.168.123.3, dst 192.168.123.1
Serial0/0.301:Encaps failed--no map entry link 7(IP)
You can add a frame map to resolve it.
R4(config)#int s0/0.301
R4(config-subif)#frame map ip 192.168.123.1 301
R1#ping 192.168.123.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.123.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/49/60 ms
ICMP: echo reply sent, src 192.168.123.3, dst 192.168.123.1
Serial0/0.301(o): dlci 301(0x48D1), pkt type 0x800(IP), datagramsize 104
Serial0/0(i): dlci 301(0x48D1), pkt type 0x800, datagramsize 104