I figured it on my own. I connected R1 int s 1/3 to R3 int s 1/3 and configured frame relay on both interfaces along with ip addresses in the same subnet. R1 is the frame-relay switch. I was able to ping R1 from R3 and vice versa but I could not ping R1 from R2.
I tried different scenarios including adding frame-relay routes statements with the dlcis on R1 int s 1/0 (which was connnected to R2) and int s 1/1 (which was connected to R3) but nothing worked. I removed these last statements.
Since R2 int s 1/0.2 was a multipoint subinterface, I just had to add the new ip addresses for R1 and R3 to the dlci (same dlci for all 3 ip addresses)
int s 1/0.2 multipoint
frame-relay map ip 18.104.22.168 100 broadcast
frame-relay map ip 22.214.171.124 100 broadcast.
The first ip address is for R1 and the second ip address is for R3.
I have ip addresses on the following interfaces:
int s 1/0 no ip address
int s 1/1 no ip address
int s 1/3.1 126.96.36.199 255.255.255.0 (point-to-point - connected to R3 s 1/3)
int s 1/0.2 188.8.131.52 255.255.255.0 (multipoint - connected to R1 int s 1/0)
int s 1/0.3 184.108.40.206 255.255..255.0 (point-to-point connected to R1 int s 1/1)
int s 1/3 220.127.116.11 255.255.255.0 (point-to-point) connected to R1 int s 1/3)
FR over Hub-spoke; There are 3 common things to check for FR to work :
broadcast in frame-relay map statments;
Split Horizon on hub;
adding map statments on Spokes saying "to ping other spoke go thru hub"
there are some examples in my docs; if u still need help or have question, show us running config(s)