def get_all_tweets(screen_name):
    df1=pd.DataFrame()
    #initialize a list to hold all the tweepy Tweets
    alltweets = []  
    
    #make initial request for most recent tweets (200 is the maximum allowed count)
    new_tweets = api.user_timeline(screen_name = screen_name,count=200)
    
    #save most recent tweets
    alltweets.extend(new_tweets)
    
    #save the id of the oldest tweet less one
    oldest = alltweets[-1].id - 1
    
    #keep grabbing tweets until there are no tweets left to grab
    while len(new_tweets) > 0:
        print(f"getting tweets before {oldest}")
        
        #all subsiquent requests use the max_id param to prevent duplicates
        new_tweets = api.user_timeline(screen_name = screen_name,count=200,max_id=oldest)
        
        #save most recent tweets
        alltweets.extend(new_tweets)
        
        #update the id of the oldest tweet less one
        oldest = alltweets[-1].id - 1
        
        print(f"...{len(alltweets)} tweets downloaded so far")
    
    #transform the tweepy tweets into a 2D array that will populate the csv 
    for tweet in alltweets:
        i=json.dumps(tweet._json)
        x= pd.json_normalize(json.loads(i))
        df1= pd.concat([df1,x], axis=0)
        print(df1.shape)

if __name__ == '__main__':
	#pass in the username of the account you want to download
	get_all_tweets("airtelindia")

Thats my code, it only fetches 3200 tweets. How to overcome this limitation, handle it and get all tweets of the user???

It’s an API limit:

This method can only return up to 3,200 of a user’s most recent Tweets.

You have to use something like fullarchive search to get more: Premium Search Tweets: Full-Archive API | Docs | Twitter Developer Platform